package projetolp2.MealPoints;


public class Estabelecimento {
	
	private String nome;
	private Endereco endereco;
	private TipoDeAlmoco tipoAlmoco;
	private TipoDeEstabelecimento tipoEstabelecimento;
	private int pos;
	
	public Estabelecimento(String nome, Endereco endereco, TipoDeAlmoco tipoAlmoco, TipoDeEstabelecimento tipoEstabelecimento, int pos) throws Exception{
		
		if(nome.equals("")|| nome == null || tipoAlmoco.equals("")|| tipoAlmoco == null){
			
			throw new Exception("Nome e tipo de almoco nao podem ser vazios ou nulos!");
		}
		
		this.nome = nome;
		this.endereco = endereco;
		this.tipoAlmoco = tipoAlmoco;
		this.tipoEstabelecimento = tipoEstabelecimento; 
		this.pos = pos;
	}
	
	public String getNome(){return nome;}
	
    public TipoDeAlmoco getTipoAlmoco(){return tipoAlmoco;}
	
	public Endereco getEndereco(){return endereco;}
	
	public TipoDeEstabelecimento getTipoEstabelecimento(){return tipoEstabelecimento;}
	
	public int getPosicao(){ return pos;}
	
	public String setNome(String nome){return this.nome = nome;}
	
	public Endereco setEndereco(Endereco endereco){return this.endereco = endereco;}
	
	public TipoDeAlmoco setTipoAlmoco(TipoDeAlmoco tipoAlmoco){return this.tipoAlmoco = tipoAlmoco;}
	
	public TipoDeEstabelecimento setTipoEstabelecimento(TipoDeEstabelecimento tipo){
		
		return this.tipoEstabelecimento = tipoEstabelecimento;}  //verificar isso!
	
	public int getPopularidade(){
		
		return Sistema.calculaPopularidade(); //posicao
	}
	
	
	public boolean equals(Object outroEstabelecimento){
		
		if(!(outroEstabelecimento instanceof Estabelecimento)){
			
			return false;
		}
		
		Estabelecimento novoEstabelecimento = (Estabelecimento) outroEstabelecimento;
		
		if(novoEstabelecimento.getNome() == getNome() && novoEstabelecimento.getEndereco() == getEndereco() && 
				novoEstabelecimento.getTipoAlmoco() == getTipoAlmoco()&& novoEstabelecimento.getTipoEstabelecimento() == getTipoEstabelecimento()&& 
				novoEstabelecimento.getPosicao() == getPosicao()){
			return true;
			
		}
		
		return false;
	}
	
	public String toString(){
		
		return "|Nome: "+ nome + " |Endereco: "+ endereco + " |Tipo de Almoco: "+ tipoAlmoco+ "|"; //+"|Tipo de Estabelecimento: "+ tipoEstabelecimento+ "|";
	}
	

}
